var readline = require('readline-sync')
readline.setDefaultOptions({ prompt: '' })
var readline = readline.prompt
let [n, m] = readline().split(' ').map((item) => parseInt(item)) // 读出n和m表示格子数量和卡片数量
let scores = readline().split(' ').map((item) => parseInt(item)) // 读出金币数
let arr = readline().split(' ').map((item) => parseInt(item)) // 读出卡牌数
arr = [0, ...arr] // 第i个代表走i步还剩下几张牌
let scoreSum = scores[0] // 总分数 刚开始是0的位置
let startIndex = 0 // 起始下标
while (m) {
  let maxScore = 0 // 刚开始最大的金币是0
  let maxIndex = 0 // 最大金币数的下标
  for (let i = 0; i < arr.length; i++) {
    // 遍历这个卡牌
    if (arr[i] !== 0) { // 如果还剩下牌
      if (maxScore < scores[startIndex + i]) {// 寻找能走到的最大的金币数{}
        maxScore = scores[startIndex + i] // 更新最大的金币数
        maxIndex = i // 更新最大金币数的下标
      }
    }
  }
  // 得到最大的下标和金币数
  scoreSum += maxScore // 最大的金币数求和
  m-- // 总牌数--
  arr[maxIndex]-- // 这个牌数--
  startIndex += maxIndex
}
console.log(scoreSum);
